var express = require('express');
var router = express.Router();
var passport = require('passport');
var LocalStrategy = require('passport-local').Strategy;			//本地验证
var queryString = require("querystring");
var url = require("url");


var User = require('../services/web_login_serve');






//passport模板,用于验证用户的登录
passport.use(new LocalStrategy(
	function (sys_id, pwd, done) {						//获取用户输入的工号和密码
		User.findUserBySysId(sys_id, function (err, user) {			//user已经是对象数据类型
			if (err) {
				return done(err);
			}
			console.log('我输入的sys_id是', sys_id)
			console.log('我输入的pwd是', pwd)

			if (!user) {								//如果user为空(即数据库查询失败)
				return done(null, false, { message: '找不到工号' });
			}
			if (user.sys_pwd != pwd) {
				return done(null, false, { message: '密码匹配有误!' });
			}
			return done(null, user);
		});
	})
);


// serializeUser 在用户登录验证成功以后将会把用户的数据存储到 session 中（在这里
// 存到 session 中的是用户的 sys_id）。在这里的 user 应为我们之前在 new
// LocalStrategy (fution() { ... }) 中传递到回调函数 done 的参数 user 对象（从数据// 库中获取到的）
passport.serializeUser(function (user, done) {
	done(null, user.sys_id);
});


// deserializeUser 在每次请求的时候将会根据用户名读取 从 session 中读取用户的全部数据
// 的对象，并将其封装到 req.user
passport.deserializeUser(function (sys_id, done) {
	User.findUserBySysId(sys_id, function (err, user) {
		done(err, user);
	});
});




var web_login_test={}
module.exports = web_login_test

//登录验证(由search页面传过来)
web_login_test.ensureAuthenticated = function (req, res, next) {
	if (req.isAuthenticated()) {
		return next();
	} else {
		var searchType = req.query.sType;//搜索类型
		var content = req.query.content;//搜索内容
		console.log('url的参数是', searchType, content)

		req.flash('error_msg', 'You are not logged in');		//一次性变量
		res.redirect('/login' + '?sType=' + searchType + '&content=' + content);			//重定向到登录页
	}
}

